home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Gekkan Dennou Club 147
/
Gekkan Dennou Club - 2000.8 Vol. 147 (Japan).7z
/
Gekkan Dennou Club - 2000.8 Vol. 147 (Japan) (Track 1).bin
/
fdimg
/
—‹Œêsrc.lzh
/
main.c
< prev
next >
Wrap
C/C++ Source or Header
|
1993-03-19
|
4KB
|
193 lines
#include "3DDEF.H"
#include "GLOBAL.H"
#include "FORWARD.H"
#include "XCODE.H"
#include "doslib.h"
UBYTE argv0[MAXLINE];
UBYTE options[MAX_OPTION][MAXLINE];
extern UWORD view_flag;
extern WORD VERSION;
void
main(int argc,STR argv[])
{
UNIT *wp;
int flag;
int i,fc,oc;
if (argc > 10000) {
printf("隠しコマンドなんて無いよぉ");
}
B_PRINT("ThunderWord V1.2 (C) 1992,1993 満開製作所");
etc_begin();
fep_init_first();
DUM_FLAG = 0;
strcpy(argv0,argv[0]); /* 自分を保存する */
init_first(); /* 初期化、カレントは0番になる */
for(oc=0,i=1;i<argc;i++) { /* 0番以外のすべてのパラメータについて */
if ((*argv[i] == '-') || (*argv[i] == '/')) { /* オプションである */
if (oc < MAX_OPTION) {
strcpy(options[oc++],argv[i]);
}
}
}
*options[oc] = EOS;
init_parameters(); /* パラメータをデフォルトにする */
if (!DUM_FLAG && KNJCTRL(50) < 200) {
DUM_FLAG = 1;
etc_beep();
B_PRINT("\n\rASK68K.SYS のバージョンが 2.00 以前なので、ダミーモードにします[Y]?");
etc_wait_y();
}
/* fep_init(); */ /* fep を初期化 */
fep_key_clear();
for(fc=0,i=1;i<argc;i++) { /* 0番以外のすべてのパラメータについて */
if ((*argv[i] == '-') || (*argv[i] == '/')) { /* オプションである */
continue;
}
if (fc < MAX_FILE) { /* ファイル名である */
ctrl_x_ctrl_f1(argv[i]);
fc++;
} else {
under_print0((STR)"ファイルの数が最大を越えました。 [Y]? ");
etc_beep();
etc_y_exit();
}
}
if (fc >=2 ) { /* 複数の指定があったら、最後に指定されたファイルになってるので */
ctrl_x_x(); /* 最初のファイルにする */
}
under_blanc();
if (!fc) { /* ファイル指定が無かった */
flag = file_open(fc,(STR)"dummy");
file_set_text(fc,fc);
if (flag >= 0) { /* 正常 */
buff_read_file_x(fc);
/* fc なるバッファにファイルを読み込む */
} else { /* エラー */
error("ファイルオープンエラーです");
}
file_close(fc);
}
if (KNJCTRL(50) >= 300 ) {
etc_begin2();
}
fep_init();
work(); /* カレントに対して作業する */
init_exit();
}
#if 1
/* エラーメッセージの表示 */
void
error(char *error_message)
{
UBYTE w[MAXLINE];
UBYTE c;
sprintf(w,"エラーが発生しました:%s [Push 'Y' Key]",error_message);
under_print0(w);
while(1) {
etc_beep();
c = toupper(fep_inkey_raw());
if (c == 'Y') {
return;
}
if (c == 'C'-'@') {
init_exit();
etc_exit(1);
}
}
}
#else
/* エラーメッセージの表示 */
void
error(char *error_message)
{
}
#endif
#if 0
void
check(STR s,int i)
{
printf("%s::%d\n",s,i);
getchar();
}
void
main_dump_files()
{
int i;
etc_beep();
window0();
for(i=0;i<16;i++) {
printf("%d:[%s][%s]\n",i,
FILE_NAMES[i].CONTENT,
FILE_NAMES_ST[i].CONTENT);
}
}
#endif
#if 1
void
etc_trim_tail()
{
UBYTE l[VERY_LONG_LINE*8];
register UNIT *wp;
if (TAIL->MAE == HEAD) {
return;
}
while(!line_length(wp = TAIL->MAE)) {
if (wp != HEAD) {
if (wp->MAE == HEAD) {
return;
}
line_get_body(l,wp->MAE);
if (etc_jlast(l) != CR) {
if (CL == wp) {
UBYTE s[VERY_LONG_LINE*8];
strcat(l,"あ");
if (cut_line(l,s,l,CURRENT_JIZUME) == 2) {
/* 前の行は1行を成立させている */
break;
} else {
ctrl_b();
}
/* CL = CL->MAE;*/
}
line_delete1_echo_after_bag(TAIL->MAE);
} else {
break;
}
} else {
break;
}
}
}
#endif
void
main_set_view_flag()
{
view_flag = strchr(FILE_NAMES_ST[WDATA[CWN].WTEXTS].CONTENT,'[');
}